item = new PopupMenu.PopupBaseMenuItem({ reactive: false,
can_focus: false });
- this._settingsAction = this._createActionButton('preferences-system', _("Settings"));
- this._settingsAction.connect('clicked', () => { this._onSettingsClicked(); });
+ let app = this._settingsApp = Shell.AppSystem.get_default().lookup_app(
+ 'gnome-control-center.desktop'
+ );
+ if (app) {
+ let [icon, name] = [app.app_info.get_icon().names[0],
+ app.get_name()];
+ this._settingsAction = this._createActionButton(icon, name);
+ this._settingsAction.connect('clicked',
+ this._onSettingsClicked().bind(this));
+ } else {
+ log('Missing required core component Settings, expect trouble…');
+ this._settingsAction = new St.Widget();
+ }
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
_onSettingsClicked() {
this.menu.itemActivated();
- let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
Main.overview.hide();
- app.activate();
+ this._settingsApp.activate();
}
});